함수 인자로 함수 포인터 받기

함수 포인터를 함수 인자로 받기 위해선

<반환형식> (*변수명)(함수 인자, 함수 인자)
// ex
int PerformOperation(int x, int y, int (*operation)(int, int)) {
    return operation(x, y);
}

형식으로 선언해 주면 된다.

#include <iostream>

// 두 정수를 더하는 함수
int Add(int a, int b) {
    return a + b;
}

// 함수 포인터를 인자로 받는 함수
int PerformOperation(int x, int y, int (*operation)(int, int)) {
    return operation(x, y);
}

int main() {
    int result, lambdaResult;

    // Add 함수의 함수 포인터를 전달
    result = PerformOperation(3, 4, Add);
    lambdaResult = PerformOperation(3, 4, [](int a, int b){ return a - b; });

    std::cout << "Result: " << result << std::endl;
    std::cout << "LambdaResult: " << lambdaResult << std::endl;

    return 0;
}